/*
 * Copyright 2000-2020 ALPHA LAB.Inc All Rights Reserved.
 */
package com.alphalab.framework.domain;

/**
 * 查询解析器中操作符枚举.
 * @author allen 
 * @version 1.0.0 2017年12月24日
 */
public enum QueryOperatorEnum {
	
	/**
	 * 等于.
	 */
	EQUAL(0),
	/**
	 * 不等于.
	 */
	NOT_EQUAL(1),	
	/**
	 * 大于.
	 */
	GREATER(2),
	/**
	 * 小于.
	 */
	LESS(3),		
	/**
	 * 大于等于.
	 */
	GREATER_AND_EQUAL(4),
	/**
	 * 小于等于.
	 */
	LESS_AND_EQUAL(5), 
	/**
	 * 模糊查询.
	 */
	LIKE(6),	
	/**
	 * 范围查询.
	 */
	IN(7),	
	/**
	 * 为空.
	 */
	IS_NULL(8),		
	/**
	 * 不为空.
	 */
	IS_NOT_NULL(9),
	/**
	 * 不在范围.
	 */
	NOT_IN(10),
	/**
	 * 不在关键词中.
	 */
	NOT_LIKE(11);
	
	/**
	 * 枚举值.
	 */
	private int value = 0;
	
	/**
	 * 枚举私有构造函数.
	 * @param mvalue value.
	 */
	QueryOperatorEnum(final int mvalue) {
		this.value = mvalue;
	}
	
	/**
	 * valueOf方法.
	 * @param value value.
	 * @return 返回值.
	 */
	public static QueryOperatorEnum valueOf(final int value) {
		switch (value) {
		case 0:
			return EQUAL; 
		case 1:
			return NOT_EQUAL; 		
		case 2:
			return GREATER; 	
		case 3:
			return LESS; 	
		case 4:
			return GREATER_AND_EQUAL; 	
		case 5:
			return LESS_AND_EQUAL; 				
		case 6:
			return LIKE;			
		case 7:
			return IN; 		
		case 8:
			return IS_NULL; 	
		case 9:
			return IS_NOT_NULL; 	
		case 10:
			return NOT_IN; 	
		case 11:
			return NOT_LIKE;		
		default:
			return EQUAL;
		}
	}
	
	/**
	 * value方法.
	 * @return 返回value.
	 */
	public int value() {
		return this.value;
	}	 

}
